package com.itheima.edu.info.manager.dao;

import com.itheima.edu.info.manager.domain.Student;

//库管类中的查询所有学生方法
public class StudentDao {
    //1. 定义一个数组容器作为整个系统的数据仓库
    private static Student[] stus = new Student[5];

    //库管类中的添加功能
    public boolean addStudent(Student stu) {
        //2. 先假设数组中已经没有位置可以拿来存储学生了
        int index = -1;
        //3. 遍历数组
        for (int i = 0; i < stus.length; i++) {
            //3.1 拿到数组中每一个元素
            Student student = stus[i];
            //3.2 如果当前索引位置为null,说明当前位置可用
            if (student == null) {
                //就将当前索引位置记录给index
                index = i;
                //3.3 结束循环
                break;
            }
        }
        //4. 根据index的值来决定添加是否成功
        if (index == -1) {
            //说明数组已经装满了,装不下了
            return false;
        } else {
            //还有位置可以用来存储,这时候就将本次要添加的学生对象记录到该索引位置
            stus[index] = stu;
            return true;
        }
    }

    public Student[] findAllStudent() {
        return stus;
    }

    public void deleteStudentById(String delId) {
        int index = getIndex(delId);
        stus[index] = null;
    }

    public int getIndex(String id) {
        int index = -1;
        for (int i = 0; i < stus.length; i++) {
            Student stu = StudentDao.stus[i];
            if (stu != null && stu.getId().equals(id)) {
                index = i;
                break;
            }
        }
        return index;
    }

    public void updateStudent(String updatelId, Student newStu) {
        int index = getIndex(updatelId);
        stus[index] = newStu;
    }
}
